The two main types of computer graphics representation are raster graphics and vector graphics. Raster graphics represent visual data contributing to a scene as “bitmaps.” A bitmap represents a finite but continuous two dimensional (2D) area of color values (commonly including, but not limited to, rectangular areas) as an array of discrete picture elements (“pixels”). This discretization of continuous color implies particular horizontal and vertical resolutions (i.e., number of color samples per unit length of display). Therefore, any single bitmap has a fixed display resolution.
Vector graphics represent visual data contributing to a scene in forms independent of any particular display resolution. These forms commonly include, but are not limited to, two dimensional (2D) and three dimensional (3D) polygonal geometry and continuous curves and surfaces. Vector graphics specify polygonal vertices in a space independent of display resolution (e.g., a Cartesian space). Vector graphics specify curves and surfaces as mathematical functions or data points (again, in a space independent of display resolution) that imply mathematical functions. Any vector graphics component (e.g., a line, a curve, a shape, or a surface) defines a continuous area of color (or a continuous boundary of an area of color) that may be discretized into any arbitrary resolution at the time of display (a process commonly referred to as rasterization).
Two dimensional (2D) vector graphics define a scene by layering 2D planes of color. Each plane of color is composed of some set of planar shapes. The boundaries of a given shape are defined by vector graphics. For example, the Macromedia Flash Internet plug-in uses quadratic bezier curves as shape boundaries. The interior color that fills a given shape may be defined as a solid color, a color gradient, a pattern, or a bitmap. Therefore, the specification of a single 2D vector graphics image includes the complete set of shape boundaries and associated interior fills that contribute to the image.
The mathematical calculations that are required to represent the various geometric shapes and colors of a vector graphic are usually performed using powerful computer software programs in general purpose computer microprocessors. The computing power of most of today's general purpose computer microprocessors is sufficient to create and display vector graphics in a timely manner. That is, the speed with which vector graphics are created and displayed generally meets the performance levels demanded by most computer graphics application programs.
Not all devices have a full sized general purpose computer microprocessor. For example, information appliances for browsing the Internet typically have inadequate general purpose computing resources to create and display vector graphics at speeds that are comparable to full size personal computers. Information appliances include, without limitation, personal digital assistants (PDAS), Pocket PCs, Web PADs, thin clients, and set top boxes. These types of relatively low priced devices are constrained in their operation by low power, limited capability, and small size. These types of devices are meant to be smaller and less costly than full size personal computers. These constraints ultimately result in microprocessors in information appliances having much less performance capability than microprocessors typically used in personal computers.
Microprocessors in information appliances also tend to be highly integrated in order to satisfy the applicable design constraints. For example, System on a Chip (“SOC”) technology has been developed by National Semiconductor Corporation and others. The System on a Chip technology often integrates graphics acceleration hardware. Two dimensional (2D) graphic acceleration hardware is common and three dimensional (3D) graphic acceleration hardware is becoming more common.
There exists a class of information appliance devices that have (1) moderate general purpose computing resources, (2) three dimensional (3D) graphic acceleration hardware, and (3) a requirement to display Internet content as the same level as a full size personal computer.
There is therefore a need for an apparatus and method for accelerating the creation and display of 2D vector graphics in devices that do not have the computing power of a full sized general purpose computer microprocessor. In particular, there is a need for an apparatus and method for accelerating the creation and display of 2D vector graphics without relying completely upon software implementation.